﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Siav
{
    public partial class frmPigmentacao : Form
    {
        public frmPigmentacao()
        {
            InitializeComponent();
        }
        SiavEntities Entidades = new SiavEntities();
        public void LimpaCampos()
        {
            tCodigo.Text = string.Empty;
            tDescricao.Text = string.Empty;
            tDescricao.Focus();
        }
        public void CarregaProdutos()
        {
            lstProdutos.Items.Clear();

            var Prods = (from p in Entidades.Pigmentacao
                         select p).ToList();
            foreach (Pigmentacao Pig in Prods)
            {
                ListViewItem item = new ListViewItem();
                item.Text = Pig.Codigo.ToString();
                item.SubItems.Add(Pig.Descricao);
                lstProdutos.Items.Add(item);
            }
            LimpaCampos();
        }
        private void btnNovo_Click(object sender, EventArgs e)
        {
            LimpaCampos();
        }

        private void btnSalvar_Click(object sender, EventArgs e)
        {
            if (tCodigo.Text == "")
            {
                Pigmentacao Pig = new Pigmentacao();
                Pig.Descricao = tDescricao.Text;
                Entidades.AddObject("Pigmentacao", Pig);
                Entidades.SaveChanges();
                CarregaProdutos();
            }
            else
            {
                int Codigo = int.Parse(tCodigo.Text);
                var Pig = (from p in Entidades.Pigmentacao
                           where p.Codigo.Equals(Codigo)
                           select p).First();
                Pig.Descricao = tDescricao.Text;
                Entidades.SaveChanges();
                CarregaProdutos();
            }
        }

        private void btnExcluir_Click(object sender, EventArgs e)
        {
            if (tCodigo.Text != "")
            {
                int Codigo = int.Parse(tCodigo.Text);
                if (MessageBox.Show("Tem certeza que deseja excluir o item selecionado?", "Confirmação", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    var Excluir = (from Pro in Entidades.Pigmentacao
                                   where Pro.Codigo.Equals(Codigo)
                                   select Pro).First();

                    Entidades.DeleteObject(Excluir);
                    Entidades.SaveChanges();
                    MessageBox.Show("Item Excluido com sucesso", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    CarregaProdutos();
                }
            }
        }

        private void btnSair_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void lstProdutos_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            if (e.IsSelected)
            {
                int pcodigo = int.Parse(lstProdutos.SelectedItems[0].Text.ToString());
                var Valor = (from v in Entidades.Pigmentacao
                             where v.Codigo.Equals(pcodigo)
                             select v).First();
                tCodigo.Text = Valor.Codigo.ToString();
                tDescricao.Text = Valor.Descricao;
            }
        }

        private void frmPigmentacao_Load(object sender, EventArgs e)
        {
            CarregaProdutos();
        }

        private void frmPigmentacao_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.F10:
                    btnSalvar_Click(sender, e);
                    break;
                case Keys.F1:
                    btnNovo_Click(sender, e);
                    break;
                case Keys.Escape:
                    btnSair_Click(sender, e);
                    break;
                case Keys.F12:
                    btnExcluir_Click(sender, e);
                    break;
            }
        }
    }
}
